package sv.com.bolsaTrabajo.view.bean.managedbeans;

import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.primefaces.context.RequestContext;
import sv.com.bolsaTrabajo.model.dao.TipoEstudioFacade;
import sv.com.bolsaTrabajo.model.entities.TipoEstudio;
import sv.com.bolsaTrabajo.view.bean.ManejadorAccion;

/**
 *
 * @author Karina Palacios
 */
@ManagedBean
@SessionScoped
public final class TipoEstudioMB extends ManejadorAccion {

    @EJB
    private TipoEstudioFacade tipoEstudioFacade;
    private TipoEstudio tipoEstudio;
    private List<TipoEstudio> tipoEstudios;

    /**
     * Constructor
     */
    public TipoEstudioMB() {
        limpiarTipoEst();
        tipoEstudio = new TipoEstudio();
    }

    public void limpiarTipoEst() {
        setTipoEstudio(new TipoEstudio());
    }

    public List<TipoEstudio> getTipoEstudios() {
        tipoEstudios = tipoEstudioFacade.obtenerTodos();
        return tipoEstudios;
    }

    public void guardarEntidad() {
        try {
            System.out.println("====> Ingresando a crear Tipo Estudio");
            getTipoEstudio().setFechaMod(new Date());

            if (tipoEstudio.getIdTipoEst()== null) {
                tipoEstudioFacade.crear(tipoEstudio);
                lanzarMensajeInformacion("Exito", "Tipo Estudio guardada correctamente");
            } else {
                tipoEstudioFacade.modificar(tipoEstudio);
                lanzarMensajeInformacion("Exito", "Tipo Estudio modificada correctamente");
            }
            RequestContext.getCurrentInstance().update("IDFrmTipoEstudio");
            RequestContext.getCurrentInstance().execute("WVDialogTipoEstudio.hide();");
        } catch (Exception e) {
            lanzarMensajeError("", "Error al guardar Tipo Estudio", e);
        }
    }

    public void modificarEntidad(TipoEstudio modEstudio) {
        try {
            this.tipoEstudio = modEstudio;
        } catch (Exception e) {
            lanzarMensajeError("Error al actualizar datos", "No se pueden asignar los valores para Tipo Estudio", e);
        }
        RequestContext.getCurrentInstance().update("");
    }

    /**
     * ****************** Getters and Setter ********************
     */
    public TipoEstudioFacade getTipoEstudioFacade() {
        return tipoEstudioFacade;
    }

    public void setTipoEstudioFacade(TipoEstudioFacade tipoEstudioFacade) {
        this.tipoEstudioFacade = tipoEstudioFacade;
    }

    public TipoEstudio getTipoEstudio() {
        return tipoEstudio;
    }

    public void setTipoEstudio(TipoEstudio tipoEstudio) {
        this.tipoEstudio = tipoEstudio;
    }   
    
}
